package cn.wolfcode.rbac.service;

import cn.wolfcode.rbac.config.PageInfo;
import cn.wolfcode.rbac.model.EmployeeDO;
import cn.wolfcode.rbac.request.EmployeeQueryRequest;
import cn.wolfcode.rbac.request.EmployeeRequest;
import cn.wolfcode.rbac.vo.EmployeeQueryVO;
import cn.wolfcode.rbac.vo.EmployeeVO;

import java.util.Map;

/**
 * @author Lu.F
 * @version 1.0
 * @Description TODO
 * @date 2022/5/19 15:43
 */
public interface EmployeeService {

    /**
     * 分页查找用户
     * @param page
     * @param size
     * @return
     */
    PageInfo<EmployeeVO> listEmployee(int page, int size);

    /**
     * 更新或者保存员工
     * @param employeeRequest
     * @return
     */
    void saveOrUpdate(EmployeeRequest employeeRequest,Long[] roleIds);

    /**
     * 查找用户
     * @param id
     * @return
     */
    EmployeeDO get(Long id);

    /**
     * 删除用户
     * @param id
     * @return
     */
    void delete(Long id);

    /**
     * 高级查询员工信息
     * @param employeeQueryRequest
     * @return
     */
    PageInfo<EmployeeQueryVO> list(int page, int size, EmployeeQueryRequest employeeQueryRequest);


    /**
     * 查找VO用户
     * @param id
     * @return
     */
    EmployeeVO getVO(Long id);


    /**
     * 登录
     * @param username
     * @param password
     */
    void login(String username,String password);

    /**
     * 退出登录
     */
    void logout();
}
